import { RcFile } from 'antd/es/upload/interface';
import { ReactNode } from 'react';

export type RbUploadProps = {
  /**
   * 子元素
   */
  children?: ReactNode;

  /**
   * 上传的地址
   */
  action?: string;

  /**
   * 接受上传的文件类型
   */
  accept?: string;

  /**
   * 是否支持多选文件，ie10+ 支持。开启后按住 ctrl 可选择多个文件
   * @default false
   */
  multiple?: boolean;

  /**
   * 是否禁用
   * @default false
   */
  disabled?: boolean;

  /**
   * 是否启用上传前编辑功能
   * @default false
   */
  beforeUploadEditEnabled?: boolean;

  /**
   * 编辑附件弹窗标题
   * @default '附件编辑'
   */
  editModalTitle?: React.ReactNode;

  /**
   * 单文件上传限制大小(单位为MB)
   * @default '10MB'
   */
  singleFileMaxSize?: number;

  /**
   * 打开编辑弹窗前操作
   */
  beforeEdit?: (file: RcFile, fileList: RcFile[]) => boolean | Promise<boolean>;

  /**
   * 附件上传前操作
   */
  beforeUpload?: (fileList: any[]) => void;
};

export type RbUploadStoreProps = {
  /**
   * 上传的地址
   */
  action?: string;

  /**
   * 接受上传的文件类型
   */
  accept?: string;

  /**
   * 是否支持多选文件，ie10+ 支持。开启后按住 ctrl 可选择多个文件
   * @default false
   */
  multiple?: boolean;

  /**
   * 是否禁用
   * @default false
   */
  disabled?: boolean;

  /**
   * 是否启用上传前编辑功能
   * @default false
   */
  beforeUploadEditEnabled?: boolean;

  /**
   * 编辑附件弹窗标题
   * @default '附件编辑'
   */
  editModalTitle?: React.ReactNode;

  /**
   * 单文件上传限制大小(单位为MB)
   * @default '10MB'
   */
  singleFileMaxSize?: number;

  /**
   * 附件上传前操作
   */
  beforeUpload?: (fileList: any[]) => void;
};
